import '../db/dao/ses_dao.dart';

abstract class SesService {
  /// 查询当前账号下的所有会话
  Future<List<SesInfo>> selectAll();

  ///获取用户ID
  String? getUserIdBySessionId(String sessionId);

  ///获取用户名
  String? getUserNameBySessionId(String sessionId);

  /// 查询单个会话
  Future<SesInfo?> selectSingleOrNull(String id);

  /// 重置未读数量
  Future<void> resetUnReadNum(String id);

  /// 重置用户未读数量
  Future<void> resetAllUnReadNum(String accountId);

  /// 删除会话
  Future<void> deleteById(String id);

  /// 创建聊天会话
  /// [sessionId] 会话id
  /// [lastMsgId] 最后一条消息id
  /// [isUpdate] 是否同时更新会话资料（群信息或用户信息）
  Future<void> createSession(
    String sessionId, {
    int? lastMsgId,
    bool isUpdate = false,
  });
}
